package com.imagecollector.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.imagecollector.domain.dto.TaskAddDTO;
import com.imagecollector.domain.dto.TaskSearchDTO;
import com.imagecollector.domain.dto.TaskUpdateDTO;
import com.imagecollector.domain.entity.*;
import com.baomidou.mybatisplus.extension.service.IService;
import com.imagecollector.domain.dto.PictureDTO;
import com.imagecollector.domain.vo.TaskSearchVO;
import com.imagecollector.domain.vo.TaskVo;

/**
 * <p>
 * 任务表 服务类
 * </p>
 *
 * @author wrf
 * @since 2024-07-31
 */
public interface ITaskService extends IService<Task> {
    boolean createTask(TaskAddDTO taskAddDTO);

    boolean publishOrRemovalTask(Integer taskId);

    boolean updateTask(TaskUpdateDTO taskUpdateDTO);

    TaskSearchVO getTaskInfo(Integer taskId);

    boolean cancelUserReceive(Integer taskId, Integer userId);

    Page<TaskSearchVO> taskList(TaskSearchDTO taskSearchDTO);

    void scanTaskAndSetExpireStatus();

}
